using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace Avon
{
    /// <summary>
    /// a rendel data
    /// </summary>
    public struct RendelData
    {
        int m_RendelID;
        int m_TermekID;
        int m_TanacsadonoID;
        int m_Darab;
        /// <summary>
        /// a rendelData konstruktora id-val
        /// </summary>
        /// <param name="id">a rendel tabla id-ja</param>
        public RendelData(int id)
        {
            m_RendelID = id;
            m_TermekID = 0;
            m_TanacsadonoID = 0;
            m_Darab = 0;
        }
        /// <summary>
        /// getterek es setterek
        /// </summary>
        public int RendelID
        {
            get { return m_RendelID; }
            set { m_RendelID = value; }
        }

        public int TermekID
        {
            get { return m_TermekID; }
            set { m_TermekID = value; }
        }

        public int TanacsadonoID
        {
            get { return m_TanacsadonoID; }
            set
            {
                m_TanacsadonoID = value;
            }
        }

        public int Darab
        {
            get
            {
                return m_Darab;
            }
            set
            {
                m_Darab = value;
            }
        }
    }
    /// <summary>
    /// szarmaztatom a rendelDAL osztalyomat a DAL bol
    /// </summary>
    public class RendelDAL : DAL
    {
        /// <summary>
        /// a beszur metodus, ezt fogja meghivni majd a rendel form
        /// </summary>
        /// <param name="TermekID">a beszurando termek id-ja</param>
        /// <param name="TanacsadonoID">a tanacsadono id-ja aki akar rendelest leadni</param>
        /// <param name="Darab"> a darabszam, hogy hany termeket akarunk leadni</param>
        /// <returns>SQL parancs eredmenyet adja vissza, amely beszur egy bizonyos darab szamu termeket egy tanacsadono altal</returns>
        public string BeszurRendeles(int TermekID, int TanacsadonoID, int Darab)
        {
            String query = "INSERT INTO Rendel (TermekID, TanacsadonoID, Db) " +
                "VALUES (" + TermekID + "," + TanacsadonoID + "," + Darab + ")";
            return ExecuteNonQuery(query);
        }
        /// <summary>
        /// le keri a rendel listat, adatival egyutt egy tanacsadono alapjan
        /// </summary>
        /// <param name="TanacsadonoID">a tanacsadono id-ja, aki alapjan kerem le a rendelsek listajat</param>
        /// <returns>egy SQL parancs segitsegevel vissza teriti a rendelesek listajat</returns>
        public List<RendelData> GetRendelList(int TanacsadonoID)
        {
            string query = "SELECT RendelID, Termekek.Nev, Tanacsadono.Nev, Db" +
                            " FROM Rendel,Termekek,Tanacsadono" +
                            " WHERE Rendel.TermekID = Termekek.TermekID" +
                             " AND Rendel.TanacsadonoID = Tanacsadono.TanacsadonoID";
            string error = string.Empty;

            SqlDataReader rdr = ExecuteReader(query, ref error);
            List<RendelData> RendelList = new List<RendelData>();
            if (error == "OK")
            {
                while(rdr.Read())
                {
                    RendelData item =  new RendelData();
                    item.RendelID = Convert.ToInt32(rdr[0]);
                    item.TermekID = Convert.ToInt32(rdr[1]);
                    item.TanacsadonoID = Convert.ToInt32(rdr[2]);
                    item.Darab = Convert.ToInt32(rdr[3]);

                    RendelList.Add(item);

                }
            }
            CloseDataReader(rdr);
            return RendelList;
        }

    }
}
